package com.jimikongjian.models;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Repository;

import java.sql.Timestamp;
import java.util.Date;

/**
 * Created by baidu on 17/2/11.
 * @author fuxiuyang
 */
@Scope("prototype")
@Repository("user")
public class User {

    /**
     * 初始化id号，将id号置为-1
     */
    public static final int INIT_ID = -1;

    /**
     * 用户状态为离线
     */
    public static final int STATUS_OFF_LINE = 0;

    /**
     * 用户状态为在线
     */
    public static final int STATUS_ON_LINE = 1;

    /**
     * 表示用户的帐号类型是禁用的类型
     */
    public static final int TYPE_DEL = -1;

    /**
     * 表示用户的帐号类型是未激活
     */
    public static final int TYPE_NO_ACTIVATION = 0;

    /**
     * 表示用户的帐号类型是正常
     */
    public static final int TYPE_NORMAL = 1;


    /**
     * 自身id号
     */
    private int id;

    /**
     * 邮箱，作为用户登录的帐号
     */
    private String email;

    /**
     * 密码
     */
    private String password;

    /**
     * 用户状态
     * 0：表示是离线
     * 1：表示是在线
     */
    private int status = 0;

    /**
     * 帐号状态
     * -1：表示是禁用用户
     * 0：表示注册未激活
     * 1：表示正常用户
     */
    private int type = 0;

    /**
     * 激活状态码，用户注册时，系统会自动生成，存储到数据库中
     */
//    private String activationKey;

    /**
     * 重置密码的验证码，每次用户修改密码时，会自动触发，修改成新的重置密码的验证码，以供下次用户重置密码时使用
     */
//    private String resetPasswordKey;

    /**
     * 创建时间
     */
    private Timestamp createTime;

    /**
     * 上次登录时间
     */
    private Date lastLoginTime = null;

    /**
     * 上次登录的ip
     */
    private String lastLoginIp = null;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
            this.status = status;
    }

    public int getType() {
        return type;
    }

    public void setType(int type) {
        this.type = type;
    }

   /* public String getActivationKey() {
        return activationKey;
    }

    public void setActivationKey(String activationKey) {
        this.activationKey = activationKey;
    }*/

  /*  public String getResetPasswordKey() {
        return resetPasswordKey;
    }

    public void setResetPasswordKey(String resetPasswordKey) {
        this.resetPasswordKey = resetPasswordKey;
    }*/

    public Timestamp getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Timestamp createTime) {
        this.createTime = createTime;
    }

    public Date getLastLoginTime() {
        return lastLoginTime;
    }

    public void setLastLoginTime(Date lastLoginTime) {
        this.lastLoginTime = lastLoginTime;
    }

    public String getLastLoginIp() {
        return lastLoginIp;
    }

    public void setLastLoginIp(String lastLoginIp) {
        this.lastLoginIp = lastLoginIp;
    }
}
